#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "rotatedgaussseidelsolver.h"
#include "rotatedgaussseidelsolver2.h"
#include "uzawagaussseidelsolver.h"
#include "gaussseidelsolver.h"
#include "quadgaussseidelsolver.h"
#include "simplesolver.h"

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();


private:
    Ui::MainWindow *ui;
    //BaseGaussSeidelSolver * solver;
    SimpleSolver * solver;
    BaseGaussSeidelSolver * createSolver(QObject * parent = 0);

private slots:
    void on_pushButton_stop_clicked();
    void on_checkBox_lagrangeFunction_clicked(bool checked);
    void on_pushButton_solveUzawa_clicked();
    void on_pushButton_solve2_clicked();
    void on_checkBox_friction_clicked(bool checked);
    void on_checkBox_unpenetration_clicked(bool checked);
    //void on_pushButton_solveNonrotated_clicked();
    void on_pushButton_solve_clicked();
    void showResults();
};

#endif // MAINWINDOW_H
